package com.fantasy.service;

import com.fantasy.entity.*;

import java.util.List;

public interface VideoService {

    /**
     * 添加视频
     * @param video
     * @return
     */
    int insert(Video video);


    /**
     * 修改视频
     * @param video
     * @return
     */
    int upDate(Video video);

    /**
     * 删除视频
     * @param videoID
     * @return
     */
    int delete(Long videoID);

    /**
     * 查询所有视频
     * @return
     */
    List<Video> queryAll();

    /**
     * 通过id查找视频
     * @param videoID
     * @return
     */
    Video queryById(Long videoID);

    /**
     * 显示记录数
     * @param pageNo
     * @param pageSize
     * @return
     */
    Page<Video> page(int pageNo,int pageSize);

    /**
     * 滑轮事件 增加视频
     * @param pageNo 第几行（每4个记录为一行 同理于分页查询的第几页）
     * @param pageSize  (一行几个视频)
     * @param typeId  (分区视频类型的id)
     * @return
     */
    Page<Video> pulley(int pageNo,int pageSize,int typeId);

    /**
     * 通过名字查找视频分页
     * @param videoName
     * @param pageNo
     * @param pageSize
     * @return
     */
    Page<Video> ResultPage(String videoName,int pageNo,int pageSize);

    /**
     * 收藏视频
     * @param favorite
     * @return
     */
    int favorite_insert(Favorites favorite);

    /**
     * 删除视频
     * @param video_id
     * @return
     */
    int favorite_delete(Long video_id);

    /**
     * 收藏夹分页
     * @param user_id
     * @param pageNo
     * @param pageSize
     * @return
     */
    Page<Video> FavoritePage(int user_id,int pageNo,int pageSize);

    /**
     * 添加历史记录
     * @param history
     * @return
     */
    int history_insert(History history);

    /**
     * 删除历史记录
     * @param video_id
     * @return
     */
    int history_delete(Long video_id);

    /**
     * 历史记录分页
     * @param user_id
     * @param pageNo
     * @param pageSize
     * @return
     */
    Page<Video> HistroyPage(int user_id,int pageNo,int pageSize);

    /**
     * 查询用户的视频
     * @param userId
     * @return
     */
    List<Video> queryByUserId(String userId);

    /**
     * 点赞表中加入数据
     * @return
     */
    int insert(Star star);

    /**
     * 查询是否已经点赞过
     * @param userId
     * @param videoId
     * @return
     */
    Star queryByUserIdAndVideoId(Integer userId,Integer videoId);

    /**
     * 查询用户自己的视频总记录数
     * @return
     */
    Integer queryForUserVideoTotalCount(int userId);

    /**
     * 更具视频id和 用户id查找收藏记录  防止重复收藏
     * @param userId
     * @param videoId
     * @return
     */
    Favorites queryFavoritesByUserIdAndVideoId(Integer userId, Integer videoId);
}
